Godot Export
export キーワードは、スクリプト外に変数を公開して、
エディタ上で編集できる様になるキーワード
定数式で初期化する
エディタ上で初期化する
のどちらかをしておかないと実行時エラー
プロパティのエクスポートは、ゲームエンジンで非プログラマと協業するときに便利。
(アーティストとかレベルデザイナーとか)
注意
ちなみに、スクリプト -> 他スクリプト への変数やメソッドのexportとは何ら関係ない
メソッドはデフォルトでpublicだし、プロパティはsetgetでsetter/getterを登録する。
入力タイプの指定
export(...) で、エディタ上での入力形式を指定できる
export ... var variable_name
数値系
(int) : 数値入力
(int, "solid", "border", "directed border") : セレクトボックス。戻り値はenumの列挙整数値
スライダー系
(int, 20) : 0 ~ 20 の整数値
(float, -10, 20, 0.2) : -10 から 20 まで 0.2 のステップで返すfloat値
(float, EXP, 100, 1000, 20) : 対数(使う場面ある?)
String系
(String, "Japanese", "American", "English") : セレクトボックス。戻り値はString
(String, MULTILINE) : 複数行テキストボックス。
"res://"で始まるファイルパスを返す系
(String, FILE) : ファイル指定
(String, DIR) : ディレクトリ指定
(String, FILE, "*.txt") : カスタムフィルター
Color系
(Color, RGB) : 戻り値はColorクラス。Alphaは必ず1
(Color, RGBA)
Globalなファイルシステム(macOS, Linux, Win)からファイルパスを返す系(toolモードのみ)
(String, FILE, GLOBAL, "*.png")
(String, DIR, GLOBAL)
Pool****Array
GodotのArrayクラスは、どんな型でも同時にいれられる。
なので、そのままExportすると、各要素を入れるのにいちいち型を入力してからになるので
めんどくさい。
Pool****Array 系で型アサーションしてexportすれば、
サイズを追加してもすぐに入力し始められる。
PoolStringArray
PoolIntArray
PoolRealArray
PoolVector2Array
PoolVector3Array
PoolByteArray
つまり、Pool****Arrayは中に入れる要素が決まっているリスト構造
code: story.py
extends Node
class_name Story
# 初期値は入れないこと
export var prompts: PoolStringArray
export var story: String = "my story %d and %s"
配列のExport
PoolArrayを調べたものの、実際はexportをするだけなら
export(...)オプションで指定できる。
ちなみに、exportされた配列はすべてのインスタンスで共有される。
つまり、定数式になる。
code: sray_export.py
# デフォルトは面倒
# 整数値Array
export(Array, int) var ints = 1,2,3 # enum型セレクトボックス
export(Array, int, "Red", "Green", "Blue") var enums = 2, 1, 0 # 2次元配列
export(Array, Array, float) var two_dimensional = 1.0, 2.0], [3.0, 4.0
export(Array) var b
export(Array, PackedScene) var scenes
# こちらは、PoolArrayを使う方法
# Typed arrays also work, only initialized empty:
export var vector3s = PoolVector3Array()
export var strings = PoolStringArray()